a11y: Do actions on cells immediately
authorBenjamin Otte <otte@redhat.com>
Tue, 28 Jun 2011 16:34:50 +0000 (18:34 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jul 2011 20:08:55 +0000 (16:08 -0400)
No idle handlers, please.

gtk/a11y/gailcell.c
gtk/a11y/gailcell.h

index de156bf12fa3ee41c42c03332a25299c12669119..4efde11c0c61b99f31aa15694935043f2e3954ac 100644 (file)
@@ -60,7 +60,6 @@ static const gchar *
                                                   gint                index);
 static gboolean     gail_cell_action_do_action    (AtkAction           *action,
                                                   gint                index);
-static gboolean     idle_do_action                (gpointer            data);
 
 static void         atk_component_interface_init  (AtkComponentIface   *iface);
 static void         gail_cell_get_extents         (AtkComponent        *component,
@@ -148,11 +147,6 @@ gail_cell_object_finalize (GObject *obj)
       g_list_foreach (cell->action_list, _gail_cell_destroy_action_info, NULL);
       g_list_free (cell->action_list);
     }
-  if (cell->action_idle_handler)
-    {
-      g_source_remove (cell->action_idle_handler);
-      cell->action_idle_handler = 0;
-    }
   relation_set = atk_object_ref_relation_set (ATK_OBJECT (obj));
   if (ATK_IS_RELATION_SET (relation_set))
     {
@@ -442,23 +436,10 @@ gail_cell_action_do_action (AtkAction *action,
     return FALSE;
   if (info->do_action_func == NULL)
     return FALSE;
-  if (cell->action_idle_handler)
-    return FALSE;
-  cell->action_func = info->do_action_func;
-  cell->action_idle_handler = gdk_threads_add_idle (idle_do_action, cell);
-  return TRUE;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GailCell *cell;
-
-  cell = GAIL_CELL (data);
-  cell->action_idle_handler = 0;
-  cell->action_func (cell);
+  
+  info->do_action_func (cell);
 
-  return FALSE;
+  return TRUE;
 }
 
 static void
index 9beb3b83bb99eaea4743f27916836d2bbb385b96..82b6471a0d94ed2a99bcd69ce94f81cdced3cfef 100644 (file)
@@ -49,8 +49,6 @@ struct _GailCell
   AtkStateSet *state_set;
   GList       *action_list;
   void (*refresh_index) (GailCell *cell);
-  gint         action_idle_handler;
-  ACTION_FUNC  action_func;
 };
 
 GType gail_cell_get_type (void);